<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>2924. 找到冠军 II 力扣</title>
</head>

<body>
    <script>
        let n = 4
        let edges = [
            [0, 2],
            [1, 3],
            [1, 2]
        ];
        (function(n, edges) {
            // 用于存放各个结点的入度
            const resultList = new Array(n).fill(true)
                //遍历edges数组，将各个路径的入度记录下来
            edges.forEach(items => {
                resultList[items[1]] = false
            });
            // 在存放入度的数组中查找入度为零的节点，若入度为零的节点唯一，表示该节点为 冠军
            // 采用二分查找，以获取较低复杂度
            // const left = resultList.indexOf(true)
            let indexList = []
            for (let j = 0; j < n; j++) {
                if (resultList[j]) {
                    indexList.push(j)
                }
            }
            return indexList.length === 1 ? indexList[0] : -1
                // 若仅有一边查找到了入度为零的节点，则输出，否则该比赛不存在强弱对比，输出-1
                // return left === -1 ? -1 : left === resultList.lastIndexOf(true) ? left : -1
        })(n, edges)
    </script>
</body>

</html>